package shuai1.inter;

import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;

public class PermitInterceptor extends MethodFilterInterceptor {

	
	protected String doIntercept(ActionInvocation invocation) throws Exception {
		ActionContext ac=invocation.getInvocationContext();
		String role=(String) ac.getSession().get("role");
		Map request=(Map) ac.get("request");
		//如果用户名为空
		if(role==null){
			request.put("msg", "用户名或密码错误，请<a href='login.jsp'>登录</a>");
			return "error";
		}else{
			//先得到被拦截下来的方法名，为了方便，转小写
			String method=invocation.getProxy().getMethod().toLowerCase();
			//如果不是管理员，并且执行了增删改的操作
			if(!("shuai".equals(role))&&(method.startsWith("add")||method.startsWith("del")||method.startsWith("update"))){
				request.put("msg","你不是管理员没有权限执行此操作<a href='javascript:history.go(-1)'>返回</a>");
				return "error";
			}
		}
		//若验证通过，则直接将请求交给对应的控制器
		return invocation.invoke();
	}

}
